import datetime

from flask import Response, jsonify, Flask, request, Blueprint,url_for
from configs import *
from modules.Tables import *


# 创建蓝图，对应的register目录
role_view = Blueprint('role_view', __name__)


# 角色信息获取（角色管理）
@role_view.route('/permission_manage_data', methods=['GET'])
# @jwt_required()
def permission_manage_data():
    # 第几页
    page = request.args.get('page', default=1, type=int)
    # 每页条数
    per_page = request.args.get('per_page', default=15, type=int)

    permission_data = db.session.query(Permission).paginate(page=page, per_page=per_page, error_out=False)

    # 构建返回的 JSON
    response_data = {
        'total_items': permission_data.total,
        'total_pages': permission_data.pages,
        'current_page': permission_data.page,
        'per_page': per_page,
            'data': [
        {'id': i.id, 'permission_name': i.permission_name, 'permission_content': i.permission_content,
         'permission_status': i.permission_status,'permission_code':i.permission_code,'created_at':i.created_at}
        for i in permission_data.items
    ]
    }
    return jsonify({'code': 200, 'data': response_data,'msg':'查询成功'})

# 角色状态修改（角色管理）
@role_view.route('/permission_manage_status_update', methods=['POST'])
# @jwt_required()
def permission_manage_status_update():
    # 角色id
    permission_id = request.form.get('permission_id', None)
    # 角色启用状态  1启用 2禁用
    permission_status = request.form.get('permission_status', 1)
    # 当用户id与用户状态存在
    if permission_id and permission_status:
        # 查询用户相同并且修改状态
        db.session.query(Permission).filter(Permission.id == permission_id).update({'permission_status': permission_status})
        # 数据提交
        db.session.commit()
        return jsonify({'code': 200, 'message': '角色状态修改成功'})
    return jsonify({'code': 400, 'message': '角色及状态未输入'})

# 角色信息删除（角色管理）
@role_view.route('permission_manage_delete',methods=['DELETE'])
def permission_manage_delete():
    # 角色id
    permission_id = request.form.get('permission_id', None)
    # 查找对应所需数据
    permiss_data = db.session.query(Permission).filter(Permission.id==permission_id).first()
    # 当角色id存在并且对应数据存在时
    if permission_id and permiss_data:
        db.session.delete(permiss_data)
        db.session.commit()
        return jsonify({'code': 200, 'message': '角色删除成功'})
    return jsonify({'code': 400, 'message': '不存在该角色'})






